package mecproc;

import java.util.LinkedList;

import espest.EstadoAbstracto;
import espest.OperadorAbstracto;

public class MecProcProfIter<E extends EstadoAbstracto> extends MecProcProfLimit<E>{
	
	protected int incremento;
	
	public MecProcProfIter(int profMax,int inc){
		super(profMax);
		incremento=inc;
		
	}
	
	@Override
	public LinkedList<No<E>> procurar(E estadoInicial, Objectivo<E> objectivo, OperadorAbstracto<E>[] operadores) throws OutOfMemoryError
	{
		LinkedList<No<E>> solucao;
		do{
			solucao = super.procurar(estadoInicial, objectivo, operadores);
			incProfMax(incremento);
		}while (solucao==null);
		decProfMax(incremento);
		return solucao;
	}
	

}
